package com.medvalley.tcm.service;

import com.medvalley.tcm.base.Result;
import com.medvalley.tcm.domain.UserInfo;
import com.medvalley.tcm.domain.UserInfoDetail;
import com.medvalley.tcm.vo.outputvo.UserConfigOutputVo;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface UserInfoService {

    Result register(String phone, String password);

    /**
     * 验证码登录
     *
     * @param phone
     * @return
     */
    Result loginBySmsCode(String phone);

    /**
     * 密码登录
     *
     * @param password
     * @return
     */
    Result loginByPassword(String phone, String password);


    /**
     * 根据手机号获取用户信息
     *
     * @param phone
     * @return
     */
    UserInfo getUserInfoByPhone(String phone);

    /**
     * 完善个人信息
     *
     * @param userInfo
     * @return
     */
    UserInfoDetail updateUserInfoDetail(String session,UserInfoDetail userInfo);


    /**
     * 根据用户Id获取详细信息
     *
     * @param userId
     * @return
     */
    UserInfoDetail getUserInfoDetail(String phone);

    /**
     * 修改手机号
     *
     * @param oldPhone
     * @param newPhone
     * @return
     */
    int modifyUserPhone(String oldPhone, String newPhone, String token);

    /**
     * 重置密码
     *
     * @param phone
     * @param password
     */
    void resetPassword(String phone, String password);

    void logout(String phone);

    void setHeadIcon(String url, String phone);

    List<UserConfigOutputVo> getUserLevel(String phone);
}
